// Shows how to unregister all clients from a GDS. using System; using System.Collections.Generic; using System.Linq; using OpcLabs.BaseLib.Collections.Generic.Extensions; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.AddressSpace; using OpcLabs.EasyOpc.UA.Discovery; using OpcLabs.EasyOpc.UA.Extensions; using OpcLabs.EasyOpc.UA.Gds; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.Gds._EasyUAGlobalDiscoveryClient { class UnregisterApplication { public static void Main1() { // Define which GDS we will work with. UAEndpointDescriptor gdsEndpointDescriptor = ((UAEndpointDescriptor)"opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer") .WithUserNameIdentity("appadmin", "demo"); // Instantiate the global discovery client object var globalDiscoveryClient = new EasyUAGlobalDiscoveryClient(); // Find application IDs of all client applications registered in the GDS. var clientApplicationIds = new HashSet<UANodeId>(); try { globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor: gdsEndpointDescriptor, startingRecordId: 0, maximumRecordsToReturn: 0, applicationName: "", applicationUriString: "", applicationTypes: UAApplicationTypes.Client, productUriString: "", serverCapabilities: new string[0], lastCounterResetTime: out _, nextRecordId: out _, applications: out UAApplicationDescription[] applicationDescriptionArray); foreach (UAApplicationDescription applicationDescription in applicationDescriptionArray) { var applicationRecordArray = globalDiscoveryClient.FindApplications( gdsEndpointDescriptor, applicationDescription.ApplicationUriString); clientApplicationIds.AddRange(applicationRecordArray.Select(description => description.ApplicationId)); } } catch (UAException uaException) { Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message); return; } // Unregister all client applications found. foreach (UANodeId applicationId in clientApplicationIds) { Console.WriteLine(); Console.WriteLine("Application ID: {0}", applicationId); try { globalDiscoveryClient.UnregisterApplication(gdsEndpointDescriptor, applicationId); } catch (UAException uaException) { Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message); continue; } Console.WriteLine("Unregistered."); } } } }
# Shows how to unregister all clients from a GDS. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from System import * from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Discovery import * from OpcLabs.EasyOpc.UA.Extensions import * from OpcLabs.EasyOpc.UA.Gds import * from OpcLabs.EasyOpc.UA.OperationModel import * # Define which GDS we will work with. gdsEndpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer') gdsEndpointDescriptor = UAEndpointDescriptorExtension.WithUserNameIdentity(gdsEndpointDescriptor, 'appadmin', 'demo') # Instantiate the global discovery client object. globalDiscoveryClient = EasyUAGlobalDiscoveryClient() # Find application IDs of all client applications registered in the GDS. clientApplicationIds = set() try: _, _, _, applicationDescriptionArray = globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor, 0, # startingRecordId 0, # maximumRecordsToReturn '', # applicationName '', # applicationUriString UAApplicationTypes.Client, # applicationTypes '', # productUriString Array.Empty[String](), # serverCapabilities DateTime(), # out lastCounterResetTime 0, # out nextRecordId Array.Empty[UAApplicationDescription]()) # out applications for applicationDescription in applicationDescriptionArray: applicationRecordArray = globalDiscoveryClient.FindApplications( gdsEndpointDescriptor, applicationDescription.ApplicationUriString) for applicationRecord in applicationRecordArray: clientApplicationIds.add(applicationRecord.ApplicationId) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() # Unregister all client applications found. for applicationId in clientApplicationIds: print() print('Application ID: ', applicationId, sep='') try: globalDiscoveryClient.UnregisterApplication(gdsEndpointDescriptor, applicationId) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) continue print('Application unregistered.') print() print('Finished.')
' Shows how to unregister all clients from a GDS. Imports System.Linq Imports OpcLabs.BaseLib.Collections.Generic.Extensions Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.AddressSpace Imports OpcLabs.EasyOpc.UA.Discovery Imports OpcLabs.EasyOpc.UA.Extensions Imports OpcLabs.EasyOpc.UA.Gds Imports OpcLabs.EasyOpc.UA.OperationModel Namespace Gds._EasyUAGlobalDiscoveryClient Friend Class UnregisterApplication Public Shared Sub Main1() ' Define which GDS we will work with. Dim gdsEndpointDescriptor As UAEndpointDescriptor = New UAEndpointDescriptor("opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer") _ .WithUserNameIdentity("appadmin", "demo") ' Instantiate the global discovery client object Dim globalDiscoveryClient = New EasyUAGlobalDiscoveryClient() ' Find application IDs of all client applications registered in the GDS. Dim clientApplicationIds = New HashSet(Of UANodeId) Try Dim lastCounterResetTime As DateTime Dim nextRecordId As Long Dim applicationDescriptionArray() As UAApplicationDescription = Nothing globalDiscoveryClient.QueryApplications( gdsEndpointDescriptor:=gdsEndpointDescriptor, startingRecordId:=0, maximumRecordsToReturn:=0, applicationName:="", applicationUriString:="", applicationTypes:=UAApplicationTypes.Client, productUriString:="", serverCapabilities:=New String() {}, lastCounterResetTime:=lastCounterResetTime, nextRecordId:=nextRecordId, applications:=applicationDescriptionArray) For Each applicationDescription As UAApplicationDescription In applicationDescriptionArray Dim applicationRecordArray = globalDiscoveryClient.FindApplications( gdsEndpointDescriptor, applicationDescription.ApplicationUriString) clientApplicationIds.AddRange(applicationRecordArray.Select(Function(description) description.ApplicationId)) Next applicationDescription Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Exit Sub End Try ' Unregister all client applications found. For Each applicationId As UANodeId In clientApplicationIds Console.WriteLine() Console.WriteLine("Application ID: {0}", applicationId) Try globalDiscoveryClient.UnregisterApplication(gdsEndpointDescriptor, applicationId) Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Continue For End Try Console.WriteLine("Unregistered.") Next applicationId End Sub End Class End Namespace
// Shows how to unregister all clients from a GDS. class procedure UnregisterApplication.Main; var ApplicationDescription: _UAApplicationDescription; ApplicationDescriptionArray: OleVariant; ApplicationId: _UANodeId; ApplicationName: WideString; ApplicationRecord: _UAApplicationRecordDataType; ApplicationRecordArray: OleVariant; ApplicationUriString: WideString; ClientApplicationIds: TList<_UANodeID>; GlobalDiscoveryClient: OpcLabs_EasyOpcUA_TLB._EasyUAGlobalDiscoveryClient; GdsEndpointDescriptor: _UAEndpointDescriptor; I, J: integer; LastCounterResetTime: TDateTime; MaximumRecordsToReturn: Integer; NextRecordId: Integer; ProductUriString: WideString; ServerCapabilities: array of string; StartingRecordId: Integer; begin // Define which GDS we will work with. GdsEndpointDescriptor := CoUAEndpointDescriptor.Create; GdsEndpointDescriptor.UrlString := 'opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer'; GdsEndpointDescriptor.UserIdentity.UserNameTokenInfo.UserName := 'appadmin'; GdsEndpointDescriptor.UserIdentity.UserNameTokenInfo.Password := 'demo'; // Instantiate the global discovery client object GlobalDiscoveryClient := CoEasyUAGlobalDiscoveryClient.Create; // Find application IDs of all client applications registered in the GDS. ClientApplicationIds := TList<_UANodeID>.Create(); StartingRecordId := 0; MaximumRecordsToReturn := 0; ApplicationName := ''; ApplicationUriString := ''; ProductUriString := ''; try GlobalDiscoveryClient.QueryApplications( GdsEndpointDescriptor, StartingRecordId, MaximumRecordsToReturn, ApplicationName, ApplicationUriString, UAApplicationTypes_Client, ProductUriString, ServerCapabilities, LastCounterResetTime, NextRecordId, ApplicationDescriptionArray); for I := VarArrayLowBound(ApplicationDescriptionArray,1) to VarArrayHighBound(ApplicationDescriptionArray,1) do begin ApplicationDescription := IUnknown(ApplicationDescriptionArray[I]) as _UAApplicationDescription; TVarData(ApplicationRecordArray).VType := varArray or varVariant; TVarData(ApplicationRecordArray).VArray := PVarArray(GlobalDiscoveryClient.FindApplications( GdsEndpointDescriptor, ApplicationDescription.ApplicationUriString)); for J := VarArrayLowBound(ApplicationRecordArray,1) to VarArrayHighBound(ApplicationRecordArray,1) do begin ApplicationRecord := IUnknown(ApplicationRecordArray[J]) as _UAApplicationRecordDataType; ClientApplicationIds.Add(ApplicationRecord.ApplicationId); end; end; except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); end; end; // Unregister all client applications found. for ApplicationId in ClientApplicationIds do begin WriteLn; WriteLn('Application ID: ', ApplicationId.ToString); try GlobalDiscoveryClient.UnregisterApplication( GdsEndpointDescriptor, ApplicationId); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); Continue; end; end; WriteLn('Unregistered.'); end; FreeAndNil(ClientApplicationIds); end;
Copyright © 2004-2023 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base. Technical support: Online Forums, FAQ.